from django.shortcuts import render
from django.http import HttpResponse
from common.models import Customer

# Create your views here.

def listorders(request):
    return HttpResponse('下面时系统中所有的订单信息。。。')

# 先定义好HTML模板
html_template ='''
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0"> <!-- 响应式设计 -->
<title>客户信息列表</title> <!-- 添加页面标题 -->
<style>
body {
    font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif; /* 更换字体 */
    background-color: #f4f4f9; /* 添加背景色 */
    margin: 20px;
    padding: 20px;
}
table {
    border-collapse: collapse;
    width: 100%;
    margin: 20px auto;
    box-shadow: 0 0 20px rgba(0, 0, 0, 0.1); /* 添加阴影效果 */
}
th, td {
    padding: 12px 15px;
    text-align: left;
    border-bottom: 1px solid #ddd;
}
th {
    background-color: #007BFF; /* 表头背景色 */
    color: white; /* 表头文字颜色 */
}
tr:hover {
    background-color: #f5f5f5; /* 鼠标悬停效果 */
}
/* 为 QQ 列添加样式 */
td:nth-child(5) {
    color: #2a5caa; /* QQ 颜色 */
    font-weight: bold; /* 字体加粗 */
}
</style>
</head>
    <body>
        <h1 style="text-align: center; color: #333;">客户信息列表</h1> <!-- 添加标题 -->
        <table>
        <tr>
        <th>id</th>
        <th>姓名</th>
        <th>电话号码</th>
        <th>地址</th>
        <!-- 添加 QQ 表头 -->
        <th>QQ</th>
        </tr>

        {% for customer in customers %}
            <tr>

            {% for name, value in customer.items %}            
                <td>{{ value }}</td>            
            {% endfor %}

            </tr>
        {% endfor %}

        </table>
    </body>
</html>
'''

from django.template import engines
django_engine = engines['django']
template = django_engine.from_string(html_template)

def listcustomers(request):
    # 返回一个 QuerySet 对象 ，包含所有的表记录
    qs = Customer.objects.values()

    # 检查url中是否有参数phonenumber
    ph =  request.GET.get('phonenumber',None)

    # 如果有，添加过滤条件
    if ph:
        qs = qs.filter(phonenumber=ph)

    # 传入渲染模板需要的参数
    rendered = template.render({'customers':qs})

    return HttpResponse(rendered)

